/**
* @program: Go
*
* @description:消息
*
* @author: Mr.chen
*
* @create: 2020-11-30 21:24
**/
package models

import (
	mydb "ydd-im/service/api/tools/mysql/conn"
	"time"
)

type Message struct {
	Id            int       `db:"id" json:"messageLogId"`         //消息ID
	Userid        int       `db:"userid" json:"sendUserId"`       //谁发的
	MessageType   int       `db:"messageType" json:"messageType"` //群聊还是私聊
	Dstid         int       `db:"dstid" json:"dstid"`             //对端用户ID/群ID
	Media         int       `db:"media" json:"media"`             //消息按照什么样式展示
	Content       string    `db:"content" json:"content"`         //消息的内容
	Pic           string    `db:"pic" json:"pic"`                 //预览图片
	Url           string    `db:"url" json:"url"`                 //服务的URL
	Memo          string    `db:"memo" json:"-"`                  //简单描述
	Createtime    time.Time `db:"createtime" json:"-"`            // 创建时间
	CreatetimeStr string    `db:"createtimestr" json:"sendTime"`  // 创建时间
	Username      string    `db:"username" json:"sendUserName"`   // 发送的用户的账号
	ToUserid      int       `db:"toUserId" json:"toUserId"`       //接收者id
}

//orm 回调
func (m *Message) TableName() string {
	return TNMessage()
}

func NewMessage() *Message {
	return &Message{}
}

// 添加消息
func (m *Message) AddMessage(message *Message) (insertid int64, err error) {
	sqlStr := "insert  into " + m.TableName() + "(userid,messageType,dstid,media,content,pic,url,memo,createtime) values (?,?,?,?,?,?,?,?,?)"
	dbconn,err := mydb.DBConn("")
	if err != nil {
		return 0, err
	}
	ret, err := dbconn.Exec(sqlStr, message.Userid, message.MessageType, message.Dstid, message.Media, message.Content, message.Pic, message.Url, message.Memo, message.Createtime)
	if err != nil {
		return 0, err
	}
	theID, err := ret.LastInsertId() // 新插入数据的id
	if err != nil {
		return 0, err
	}
	return theID, nil
}
